package com.ww.springboot.boot.baseTest.design.中介者;

/**
 * 描述：中介者模式 --- 避免实体间的相互依赖 每个实体将自身委托给中介 让中介负责梳理多对象间的关系
 * 其实跟现在的service调用原理一致 每个实体定义属于自己的底层逻辑 需要相互依赖的场景则使用中介业务service来完成
 *
 * @author 🧑 ‍wanwei
 * @since 2023-02-10 11:19
 */
public class Main {
    public static void main(String[] args) {
        AbstractMediator mediator = new Mediator();
        //采购人员采购电脑
//        System.out.println("------采购人员采购电脑--------");
//        Purchase purchase = new Purchase(mediator);
//        purchase.buyIBMcomputer(100);
//        //销售人员销售电脑
//        System.out.println("\n------销售人员销售电脑--------");
//        Sale sale = new Sale(mediator);
//        sale.sellIBMComputer(1);
//        //库房管理人员管理库存
//        System.out.println("\n------库房管理人员清库处理--------");
//        Stock stock = new Stock(mediator);
//        stock.clearStock();
        Purchase purchase = mediator.purchase;
        Stock stock = mediator.stock;
        Sale sale = mediator.sale;
        purchase.buyIBMcomputer(100);
        sale.sellIBMComputer(1);
        stock.clearStock();
    }

}
